package br.com.android.aluno.view;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import br.com.android.aluno.dao.AlunoDao;
import br.com.android.aluno.model.Aluno;

public class EditarActivity extends FormularioActivity {

	protected static final String INTENT_EXTRA_DATA_ID = "_id_";
	protected static final String INTENT_EXTRA_DATA_NOME = "_nome_";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		// Altera o texto do botão
		getBtSalvar().setText("Alterar");
		
		// Obtem os dados vindos da Activity que a chamou
		Intent intent = getIntent();
		String idStr = intent.getStringExtra(INTENT_EXTRA_DATA_ID);
		String nomeStr = intent.getStringExtra(INTENT_EXTRA_DATA_NOME);
		
		// Obtem os dados do aluno e preenche na tela
		if(idStr != null){
			carregaDadosPeloId(idStr);
		} else if(nomeStr != null){
			carregaDadosPeloNome(nomeStr);
		} else{
			Toast.makeText(this, "Aluno não encontrado!",
					Toast.LENGTH_LONG).show();			
			finish();
			return;
		}
	}

	/**
	 * Ler os dados do aluno no banco de acordo com o nome passado e preenche na tela
	 * @param nome_aluno
	 */
	private void carregaDadosPeloNome(String nome) {
		AlunoDao alunoDao = new AlunoDao(this);
		Aluno aluno = alunoDao.buscar(nome);
		
		if(aluno != null){
			setAluno(aluno);
		} else{
			Toast.makeText(this, "O aluno " + nome + " não foi encontrado!",
					Toast.LENGTH_LONG).show();			
			finish();
		}
	}

	/**
	 * Ler os dados do aluno no banco de acordo com o id passado e preenche na tela
	 * @param id_aluno
	 */
	private void carregaDadosPeloId(String id) {		
		AlunoDao alunoDao = new AlunoDao(this);
		Aluno aluno = alunoDao.buscar(Long.parseLong(id));
		
		if(aluno != null){
			setAluno(aluno);
		} else{
			Toast.makeText(this, "O aluno de ID="+id+" não foi encontrado!",
					Toast.LENGTH_LONG).show();			
			finish();
		}
	}

	@Override
	public void onClick(View v) {
		if(v == getBtSalvar()){ // Verifica se o evento do botao clicado foi gerado pelo botao salvar
			Aluno aluno = getAluno();
			
			// Altera os dados do aluno no banco de dados
			AlunoDao alunoDao = new AlunoDao(this);
			int resp = alunoDao.atualizar(aluno);
			
			if(resp != -1){
				// Mostra uma mensagem na tela
				Toast.makeText(this, "Aluno atualizado com sucesso: " + aluno.getNome(), Toast.LENGTH_LONG).show();
			} else{
				Toast.makeText(this, "Erro ao atualizar o Aluno: " + aluno.getNome(), Toast.LENGTH_LONG).show();
			}

			// Renomeia o nome do arquivo
			renomeiaFoto(aluno);
			
			// Encerra essa Activity
			finish();
			
		} else if(v == getIvFoto()){
			
			Intent it = new Intent("android.media.action.IMAGE_CAPTURE");
			startActivityForResult(it, 101);
			
		}	
	}
	
}
